Dialog 這個元件是一種彈性多變的對話框介面,通常用來顯示重要的資訊,它的使用方式非常靈活,可以根據不同情境進行自定義設計。常見的用途包括顯示警示性的訊息、確認性的對話框、或者是用來輸入資料的欄位等。透過這些直觀且實用的介面,Dialog 能夠有效提升使用者體驗,使得應用程式與使用者之間的互動變得更加流暢與高效。
製作一個的購買商品的簡易對話框
首先,還是一樣先拉介面,在(res/drawable)按右鍵New ->點Drawable
新增一個round_layout.xml檔案
同時也在(res/layout)按右鍵New ->點Layout
新增一個dialog_item.xml檔案
在開始製作前,先說明這兩個round_layout.xml、dialog_item.xml檔案是做甚麼用的
round_layout.xml 他最主要是負責的是做對話框元件底圖
dialog_item.xml 他最主要是負責的是做對話框
開始設計的元件底圖,底圖設計完會呈現這樣
round_layout.xml
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
/*設定layout的圓角*/
<corners
android:radius="10dip"
/>
/*設定layout框內底部的顏色*/
<solid
android:color="@android:color/black"
/>
/*設定layout外框的顏色*/
<gradient
android:startColor="@android:color/white"
android:endColor="@android:color/white"
/>
<padding
/>
</shape>
接下來,開始設計的對話框,對話框設計完會呈現這樣
dialog_item.xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/round_layout">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginStart="16dp"
android:layout_marginTop="8dp"
android:text="購物車"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textStyle="bold"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="64dp"
android:text="哆啦A夢"
android:textAppearance="@style/TextAppearance.AppCompat.Large"
android:textSize="18sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView" />
<Button
android:id="@+id/buttonDialog"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="64dp"
android:layout_marginEnd="16dp"
android:layout_marginBottom="8dp"
android:background="@android:color/transparent"
android:text="結帳"
android:textColor="@color/design_default_color_primary"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/textView2"
app:layout_constraintVertical_bias="0.0" />
</androidx.constraintlayout.widget.ConstraintLayout>
底圖、對話框設計好後,在回到activity_main.xml拉介面
activity_main.xml
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView3"
android:layout_width="420dp"
android:layout_height="259dp"
android:gravity="center"
android:text="蝦皮購物"
android:textSize="20dp"
android:textStyle="bold"
app:layout_constraintBottom_toTopOf="@+id/guideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="@+id/guideline2" />
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="蝦皮購物車"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.Cons
traintLayout>
在接上程式碼,購買商品的簡易對話框就製作完成。
MainActivity.Java
public class MainActivity extends AppCompatActivity {
private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = findViewById(R.id.button);
btn.setOnClickListener((view -> {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
View diglogView = getLayoutInflater().inflate(R.layout.dialog_item,null);
Button btnDialog = diglogView.findViewById(R.id.buttonDialog);
builder.setView(diglogView);
AlertDialog dialog = builder.create();
btnDialog.setOnClickListener(view1 -> {
dialog.dismiss();
});
dialog.show();
}));
}
}
顯示最後成品: